package terrenos;

import afinidades.Herbal;
import java.lang.reflect.Field;
import unidades.UnidadHT;

/**
 * Terreno que representa hierba
 *
 * @author Ibai
 */
public class Hierba extends Terreno {

    public Hierba() {
        super(-2);
    }

    public int getBonificacion(UnidadHT unidad) {
        try {
            Class<?> c = Class.forName(unidad.getAfinidad());
            if (Herbal.class.isAssignableFrom(c)) {
                Field f = c.getDeclaredField("multiplicador");
                double mult = f.getDouble(c);
                return (int) (unidad.DEFENSA * mult);
            } else {
                return unidad.DEFENSA;
            }
        } catch (ClassNotFoundException ex) {
            return unidad.DEFENSA;
        } catch (NoSuchFieldException ex) {
            return unidad.DEFENSA;
        } catch (IllegalAccessException ex) {
            return unidad.DEFENSA;
        }
    }
}
